Suppliers of products manage product databases that store records of their products. Some of the products are configurable products with product features that can be configured to meet specific requirements. Product databases with configurable product include a list of product part numbers that reflect every possible combination of product features. Based on the list, the customer may select a product having features that match the customer's needs. The customer may also select features that the product needs to have and the records in the product database may be searched to find configured products matching the customer's selections.
Cables are an example of a configurable product. The supplier may generate a database with records of different cable configurations. A customer may select a cable from the database with the desired features (e.g., cable length, cable color, cable type, type of connectors, number of connectors, or type of shielding). The customer may also be provided with a user interface to select desired features of the cable and, based on the selections, be provided with configured cables from the database that match the selections.
However, as the number of possible features of a product increases, the size and complexity of the product database exponentially increases. The large number of records reduces the speed with which the results can be returned to a customer and makes it more difficult to present the results efficiently.
Certain example embodiments of this application address these and/or other concerns. For instance, certain example embodiments relate to a computer implemented method for processing a search request for part numbers of a configurable product. The method may include displaying a user interface for receiving a user input search request for the part numbers of the configurable product and receiving, via the user interface, the user input search request defining one or more configurable properties of the configurable product. The method may include analyzing the user input search request to determine entities present in a database matching the one or more configurable properties of the user input search request, and determining virtual families stored in the database including the entities. Each virtual family may include one or more independent groups defining configurable properties of the configurable product and part number positions of the part number corresponding to the configurable properties. Each independent group may include part number positions of the part number for characters, number and/or symbols that do not depend on characters, number and/or symbols at part number positions of other independent groups. Based on the determined virtual families including the entities, a calculation may be made to determine a total number of matching products. In addition, the method may include determining the part numbers of the configurable product matching the user input search request, wherein the part numbers are determined based on allowed characters, number and/or symbols for the part number positions defined in the independent groups of the virtual families including the entities matching the one or more configurable properties of the user input search request. A list of part numbers determined to match the user input search request may be displayed to a user on the user interface.
According to an embodiment of the present disclosure, the independent groups are generated by receiving specification information for the configurable product, generating an independent group for each symbol group, merging independent groups having the same configurable properties to form a new independent group; and merging independent groups that, based on at least one constraint, dependent on each other, wherein the dependent independent groups are merged to form a new independent group. The received specification information may include a plurality of symbol groups for the configurable product. The received specification information may also include at least one constraint involving at least one symbol group. The symbol groups define a format of the part number of the configurable product and each symbol group includes one or more part number positions of the part number for the characters, number and/or symbols corresponding to the configurable properties of the configurable product.
According to an embodiment of the present disclosure, the possible part number positions formed based on the independent groups of one virtual family have a same length.
Certain example embodiments of the present disclosure relate to a computer implemented method for building a configurable product data store. The method including receiving specification information for a configurable product and, based on the specification information, generating a plurality of independent groups. The specification information includes at least one symbol group for the configurable product. The specification information may also include at least one constraint involving at least one symbol group, and/or at least one conditional particular for at least one symbol group. The symbol group(s) may define a format of a part number of the configurable product and each symbol group includes one or more part number positions of the part number for characters, number and/or symbols corresponding to configurable properties of the configurable product. Each independent group includes part number positions for characters, number and/or symbols that do not depend on characters, number and/or symbols at part number positions of other independent groups. The plurality of independent groups are generated by generating an independent group for each symbol group, merging independent groups having the same configurable properties to form a new independent group, and merging independent groups that, based on the at least one constraint, dependent on each other, wherein the dependent independent groups are merged to form a new independent group. When multiple lengths of the part number positions can be generated from the generated independent groups, a plurality of virtual families are generated such that each respective virtual family, based on the independent groups in the virtual family, provides characters, number and/or symbols for part number positions that are of a same length. The generated virtual families are stored a database.
Non-transitory computer readable storage mediums tangibly storing instructions for performing the above-summarized and/or other approaches also are provided by certain example embodiments, as well as corresponding computer programs.
These features, aspects, advantages, and example embodiments may be used separately and/or applied in various combinations to achieve yet further embodiments of this invention.